package cn.bluethink.utile;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import java.util.HashMap;
import java.util.Map;

/**
 * 解析json字符串
 */
public class JsonUtil {

    public static final String KEY_NOT_EXIT = "null";

    /**
     * 使用gson转String有时会报异常  暂时未知原因
     * @param json
     * @param key
     * @return
     */
    public static String fastJson(String json,String key){
        JSONObject jsonObject = JSON.parseObject(json);
        return jsonObject.get(key).toString();
    }

    /**
     * 将后台传递的json字符串根据key获取相应值1
     * @param json json字符串
     * @param key
     * @return
     */
    public static String getJsonValue(String json,String key){
        JsonParser jsonParser = new JsonParser();
        //将json字符串转化成json对象
        JsonObject jsonObject = jsonParser.parse(json).getAsJsonObject();
        if (jsonObject.has(key)){
            return jsonObject.get(key).getAsString();
        }
        return null;
    }

    /**
     * @param json json数组
     * @param key  key
     * @return
     */
    public static Map<String,String> getJson(String json, String key){
        Map<String,String> res = new HashMap<>();
        JsonParser jsonParser = new JsonParser();
        JsonArray jsonArray = jsonParser.parse(json).getAsJsonArray();
        if (jsonArray != null && jsonArray.size() > 0){
            for (int i = 0;i < jsonArray.size();i++){
                res.put(jsonArray.get(i).getAsJsonObject().get(key).getAsString() + jsonArray.get(i).getAsJsonObject().get("id").getAsString(),jsonArray.get(i).getAsJsonObject().get("nodes").getAsString());
            }
        }
        return res;
    }

}
